package com.situ.spring.aop;

import org.aspectj.lang.ProceedingJoinPoint;

//通知类、要增强的方法（事物、日志、权限）
public class MyAdvice {
	
	//前置通知
	//在目标方法执行之前调用
	public void before() {
		System.out.println("前置通知：before");
	}
	
	//后置通知(如果出现异常不会调用)在目标方法执行之后调用
	public void afterReturning() {
		System.out.println("后置通知（如果出现异常不会调用）:afterReturning");
	}
	
	// 环绕通知（在目标方法之前和之后都调用）
	public Object round(ProceedingJoinPoint pjp) throws Throwable {
		System.out.println("环绕通知：round before");
		Object object = pjp.proceed();
		System.out.println("环绕通知：round after");
		return object;
	}
	
	// 异常通知：如果出现异常，就会调用
	public void afterException() {
		System.out.println("异常通知：afterException");
	}
	
	//后置通知：（无论是否出现异常都会调用）在目标方法执行之后调用
	public void after() {
		System.out.println("后置通知(无论是否出现异常都会调用)：after");
	}




}
